Matthias Clasen [Fri, 18 Nov 2016 13:14:23 +0000 (08:14 -0500)]
docs: Name the 3.90 index properly
Matthias Clasen [Fri, 18 Nov 2016 13:10:01 +0000 (08:10 -0500)]
docs: Ignore gtksnapshotprivate.h
Matthias Clasen [Fri, 18 Nov 2016 12:57:10 +0000 (07:57 -0500)]
snapshot: Name api parameters consistently
gtk-doc gets upset otherwise.
Matthias Clasen [Fri, 18 Nov 2016 11:53:57 +0000 (06:53 -0500)]
Document GtkSnapshot
This is just some initial documentation, more detail needed.
Matthias Clasen [Fri, 18 Nov 2016 12:42:49 +0000 (07:42 -0500)]
Add some drawing information the migration guide
Mention snapshot(), and the new GtkDrawingArea API.
Matthias Clasen [Fri, 18 Nov 2016 11:09:46 +0000 (06:09 -0500)]
docs: Add GtkDrawingAreaDrawFunc
Benjamin Otte [Fri, 18 Nov 2016 06:24:31 +0000 (07:24 +0100)]
tests: Use a drawing area in testpopup
Benjamin Otte [Fri, 18 Nov 2016 06:22:02 +0000 (07:22 +0100)]
tests: Make testtooltips not use the draw signal
Benjamin Otte [Fri, 18 Nov 2016 06:15:12 +0000 (07:15 +0100)]
tests: Produce load without waiting for draw signal
Benjamin Otte [Fri, 18 Nov 2016 06:14:28 +0000 (07:14 +0100)]
tests: Use drawing area instead of draw signal
Benjamin Otte [Fri, 18 Nov 2016 05:37:33 +0000 (06:37 +0100)]
testsuite: Don't use draw signal, use a drawing area instead
Benjamin Otte [Fri, 18 Nov 2016 05:32:27 +0000 (06:32 +0100)]
printunixdialog: Use new drawing area API
Benjamin Otte [Fri, 18 Nov 2016 05:19:27 +0000 (06:19 +0100)]
coloreditor: Don't draw a background on boxes
Boxes know how to draw backgrounds these days.
Benjamin Otte [Fri, 18 Nov 2016 05:16:38 +0000 (06:16 +0100)]
gtk-demo: Update drawing area usage to new APIs
A few demos are broken because they do input on drawing areas.
Benjamin Otte [Fri, 18 Nov 2016 04:45:36 +0000 (05:45 +0100)]
drawingarea: Add gtk_drawing_area_set_draw_func()
Benjamin Otte [Fri, 18 Nov 2016 03:00:02 +0000 (04:00 +0100)]
drawingarea: Add content-width and content-height properties
People should use these instead of gtk_widget_set_size_request().
Benjamin Otte [Fri, 18 Nov 2016 01:35:05 +0000 (02:35 +0100)]
drawingarea: Clean up
No need to send configure events anymore and this should be a no-window
widget.
Matthias Clasen [Fri, 18 Nov 2016 01:29:07 +0000 (20:29 -0500)]
gsk: Don't leak texture surfaces
gsk_texture_download returns a reference.
Matthias Clasen [Fri, 18 Nov 2016 01:22:42 +0000 (20:22 -0500)]
style context: Don't leak a widget path
Found by valgrind.
Benjamin Otte [Thu, 17 Nov 2016 23:46:49 +0000 (00:46 +0100)]
widget: Add a defualt snapshot vfunc
Just to avoid having to do NULL checks when calling
widget_class->snapshot. We were crashing with drawing areas who don't
have a draw or a snapshot vfunc (woot!).
Marek Černocký [Thu, 17 Nov 2016 23:40:11 +0000 (00:40 +0100)]
Updated Czech translation
Benjamin Otte [Thu, 17 Nov 2016 22:16:14 +0000 (23:16 +0100)]
widget: Fix math screwups in clip calculation
We need so subtract the allocation from the clip to get the clip offset,
not the other way around.
This was screwing in particular with marks on GtkScale, because GtkScale
mark clip computation is broken and always returns (0,0) which makes
scales have a waaaaay too large clip.
But that's another bug.
Benjamin Otte [Thu, 17 Nov 2016 21:03:04 +0000 (22:03 +0100)]
gdk: Fix a variable
The passed in surface is the current_paint surface, so I guess this
usage hasn't been noticed.
Matthias Clasen [Thu, 17 Nov 2016 18:50:25 +0000 (13:50 -0500)]
placeview: Don't leak the file enumerator
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=774634
Matthias Clasen [Thu, 17 Nov 2016 17:04:35 +0000 (12:04 -0500)]
entry: Fix input window position for icons
This makes the icon in the placesview address entry and
in widget-factory's progress entry work again.
Timm Bäder [Thu, 17 Nov 2016 15:45:10 +0000 (16:45 +0100)]
tests/styleexamples: Remove gtk_render_extension calls
The function doesn't exist anymore so there's nothing to test.
Timm Bäder [Tue, 15 Nov 2016 09:51:41 +0000 (10:51 +0100)]
filechooserwidget: Forward file filter to entry
And in the entry, apply the currently used filter as a second step to
the completion items.
https://bugzilla.gnome.org/show_bug.cgi?id=773007
Timm Bäder [Sat, 12 Nov 2016 21:15:48 +0000 (22:15 +0100)]
sizerequest: rename _compute_size_for_orientation to _measure
They have the exact same parameters and gtk_widget_measure did
unnecessary work before. Also better stack traces!
Matthias Clasen [Thu, 17 Nov 2016 14:33:16 +0000 (09:33 -0500)]
docs: Fix print-related includes
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=774614.
Matthias Clasen [Thu, 17 Nov 2016 14:06:57 +0000 (09:06 -0500)]
GtkFileChooser: Make local-only default to FALSE
There is no good reason anymore to default to TRUE, and this
default only makes applications miss out on useful functionality.
Matthias Clasen [Thu, 17 Nov 2016 14:05:47 +0000 (09:05 -0500)]
Revert "GtkFileChooser: Make local-only default to FALSE"
This reverts commit
0bc79910e03b69279d0aee8edf76ae5cae63ff65.
Matthias Clasen [Thu, 17 Nov 2016 14:02:29 +0000 (09:02 -0500)]
GtkFileChooser: Make local-only default to FALSE
There is no good reason anymore to default to TRUE, and this
default only makes applications miss out on useful functionality.
Matthias Clasen [Thu, 17 Nov 2016 13:51:16 +0000 (08:51 -0500)]
gtk-demo: Set local-only to FALSE for the file chooser
No good reason for that.
Ondrej Holy [Wed, 16 Nov 2016 08:03:42 +0000 (09:03 +0100)]
gtkplacesview: Add example of IPv6 address in guidance
Square brackets are mandatory for IPv6 addresses. Add example of IPv6
address in the guidance to make it obvious.
https://bugzilla.gnome.org/show_bug.cgi?id=756570
Matthias Clasen [Thu, 17 Nov 2016 11:17:11 +0000 (06:17 -0500)]
docs: Update an example
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=774490
Caolán McNamara [Thu, 17 Nov 2016 10:04:29 +0000 (10:04 +0000)]
spin entry should be a child of spin context
https://bugzilla.gnome.org/show_bug.cgi?id=774609
Rafael Fontenelle [Thu, 17 Nov 2016 04:21:21 +0000 (04:21 +0000)]
Update Brazilian Portuguese translation
(cherry picked from commit
0103bbf5eb6efa817e2d42643d73dd0133fdb003)
Benjamin Otte [Thu, 17 Nov 2016 02:31:15 +0000 (03:31 +0100)]
snapshot: Implement gtk_snapshot_clips_rect()
And use this to cull widgets and gadgets that are completely outside the
clip region.
A potential optimization is to apply this clip region to cairo contexts
created with gtk_snapshot_append_cairo_node(), but for that we'd need to
apply the inverse matrix to the clip region, and that causes rounding
errors.
Plus, I hope that cairo drawing becomes exceedingly rare so it won't be
used for the whole widget factory like today (which might also explain
why no culling happens in the widget factory outside the header bar.
Benjamin Otte [Thu, 17 Nov 2016 01:14:10 +0000 (02:14 +0100)]
snapshot: Pass the clip region to the snapshot
Benjamin Otte [Thu, 17 Nov 2016 00:55:26 +0000 (01:55 +0100)]
snapshot: Add GtkSnapshotState
Essentially copies cairo_gstate_t.
This is in preparation for attaching more information to the snapshot.
Benjamin Otte [Thu, 17 Nov 2016 00:05:15 +0000 (01:05 +0100)]
snapshot: Fix graphene misunderstandings
The equivalent to cairo_matrix_multiply (a, b, c) is
graphene_matrix_multiply (c, b, a).
graphene_matrix_multiply (a, b, c) may not be called with b and c being
the same matrix.
Benjamin Otte [Wed, 16 Nov 2016 19:51:53 +0000 (20:51 +0100)]
snapshot: Add infrastructure to snapshot CSS images
Use this infrastructure to render builtin images. Which means from now
on, GtkCheckbutton, GtkSpinner and a few others use snapshots.
Benjamin Otte [Wed, 16 Nov 2016 18:31:47 +0000 (19:31 +0100)]
renderbackground: Remove unused functions
Benjamin Otte [Wed, 16 Nov 2016 18:27:43 +0000 (19:27 +0100)]
API: Remove everything relating to "grip"
Grips have long been unused in GTK, so remove all support for them.
This removes the GTK_STYLE_CLASS_GRIP and the special
gtk_render_handle() code for drawing those grips.
Benjamin Otte [Wed, 16 Nov 2016 17:36:10 +0000 (18:36 +0100)]
API: Remove gtk_render_extension()
This is long-gone drawing API.
Benjamin Otte [Wed, 16 Nov 2016 04:37:20 +0000 (05:37 +0100)]
gsktexture: Allow attaching render data to textures
This allows renderers (or anyone really) to attach "render data" to
textures. Only the first render data sticks.
You can gsk_texture_set_render_data() with the key you will use to
look the data up again, and if no data has been set yet, yours will be
set.
You can retrieve this data via gsk_texture_get_render_data() later on.
If your data has been cleared, NULL will be returned.
When gsk_texture_clear_render_data() is called (which the texture will
call when it is finalized), your destory notify will be called and you
have to release your render data.
The GL driver uses this to attach texture ids to GskTextures.
Benjamin Otte [Wed, 16 Nov 2016 03:14:32 +0000 (04:14 +0100)]
gsk: Rework GskTexture
We do no longer bind textures to a renderer, instead they are a way for
applications to provide texture data.
For now, that's it. We've reverted to uploading it from scratch every
frame.
Piotr Drąg [Wed, 16 Nov 2016 12:08:19 +0000 (13:08 +0100)]
Update Polish translation
Piotr Drąg [Wed, 16 Nov 2016 10:43:23 +0000 (11:43 +0100)]
Update Polish translation
Benjamin Otte [Tue, 15 Nov 2016 21:39:26 +0000 (22:39 +0100)]
container: ensure we only append a single node
The snapshot vfuncs must only append at most a single node,
otherwise things are going to break if the widget is the root node.
Unfortunately there is no code that can check this in a generic fashion,
so we'll have to debug this on a case-by-case basis.
Benjamin Otte [Tue, 15 Nov 2016 21:39:05 +0000 (22:39 +0100)]
snapshot: push/pop mismatch is critical
This is broken code that needs to be fixed right now.
Benjamin Otte [Tue, 15 Nov 2016 16:45:25 +0000 (17:45 +0100)]
widget: Remove get_render_node() vfunc
Benjamin Otte [Tue, 15 Nov 2016 16:45:08 +0000 (17:45 +0100)]
snapshot: Convert inspector's RenderNodeView
Benjamin Otte [Tue, 15 Nov 2016 16:31:24 +0000 (17:31 +0100)]
container: Remove get_render_node() support API
It's unused now.
Benjamin Otte [Tue, 15 Nov 2016 16:28:34 +0000 (17:28 +0100)]
snapshot: Convert GtkPopover
Benjamin Otte [Tue, 15 Nov 2016 15:56:37 +0000 (16:56 +0100)]
gadget: Remove gtk_css_gadget_get_render_node()
It's unused now that we can snapshot.
Benjamin Otte [Tue, 15 Nov 2016 15:39:07 +0000 (16:39 +0100)]
snapshot: Convert GtkIcon
Benjamin Otte [Tue, 15 Nov 2016 15:38:20 +0000 (16:38 +0100)]
snapshot: Convert GtkExpander
Benjamin Otte [Tue, 15 Nov 2016 15:32:30 +0000 (16:32 +0100)]
Revert "GtkFrame: Convert to indirect rendering"
This reverts commit
a0b2b3745f697b91d9e91c3f10b0b3b4627a33d8.
Frames cannot be rendered by GSK yet, because they do clipping.
Benjamin Otte [Tue, 15 Nov 2016 15:21:14 +0000 (16:21 +0100)]
snapshot: Convert GtkSeparator
Benjamin Otte [Tue, 15 Nov 2016 15:20:18 +0000 (16:20 +0100)]
Revert "Covert GtkOverlay to indirect rendering"
This reverts commit
fd4a1cdad60fd291abd59dd5b13905430a674d99.
GtkOverlay uses clipping and render nodes can't clip yet.
Benjamin Otte [Tue, 15 Nov 2016 15:19:21 +0000 (16:19 +0100)]
snapshot: convert GtkListBox
Benjamin Otte [Tue, 15 Nov 2016 15:11:19 +0000 (16:11 +0100)]
snapshot: Convert GtkFlowBox
Benjamin Otte [Tue, 15 Nov 2016 06:29:38 +0000 (07:29 +0100)]
Revert "paned: Convert to indirect rendering"
This reverts commit
ba9193fc813932a3575210e42efbcf78056e07cc.
Paneds can do indirect rendering yet as we need clipping support first.
Benjamin Otte [Tue, 15 Nov 2016 06:25:13 +0000 (07:25 +0100)]
snapshot: Convert GtkSpinner
Benjamin Otte [Tue, 15 Nov 2016 06:06:57 +0000 (07:06 +0100)]
snapshot: Convert box gadget
Makes spinbuttons have text again!
Benjamin Otte [Tue, 15 Nov 2016 06:01:27 +0000 (07:01 +0100)]
gsk: Allow creating cairo contexts for 0x0 nodes
This happens in regular code paths for example when trying to render the
empty text string. We don't want to store a surface on the render
node in such a case (so actual rendering isn't slowed down), but we do
want to return a working cairo context that is not in an error state
(so the cairo rendering can continue without error messages).
Benjamin Otte [Tue, 15 Nov 2016 05:43:47 +0000 (06:43 +0100)]
window: Unrealize renderer last
We want to unrealize the renderer only after all widgets have been
unrealized. Otherwise, the widgets cannot release rendering resources
like textures.
Benjamin Otte [Tue, 15 Nov 2016 05:43:28 +0000 (06:43 +0100)]
rendernode: Unref texture on finalize
Leaking textures is no fun.
Benjamin Otte [Tue, 15 Nov 2016 05:36:34 +0000 (06:36 +0100)]
image: Invalidate icon helper when unrealizing
This frees up any cached surfaces and textures in the iconhelper,
ensuring that the renderer can release its texture data.
Benjamin Otte [Tue, 15 Nov 2016 05:19:16 +0000 (06:19 +0100)]
snapshot: Convert GtkImage and GtkIconHelper
Adds a bunch of new APIs to render textures with theming.
FIXME: Cannot draw shadows for textures.
Benjamin Otte [Tue, 15 Nov 2016 03:20:40 +0000 (04:20 +0100)]
snapshot: Port GtkHeaderBar
Benjamin Otte [Tue, 15 Nov 2016 03:07:16 +0000 (04:07 +0100)]
snapshot: Convert GtkFixed
Benjamin Otte [Tue, 15 Nov 2016 03:06:20 +0000 (04:06 +0100)]
snapshot: Convert GtkComboBox
Benjamin Otte [Mon, 14 Nov 2016 21:58:58 +0000 (22:58 +0100)]
snapshot: Convert GtkLabel and GtkAccelLabel
Also adds gtk_snapshot_render_insertion_cursor().
Benjamin Otte [Mon, 14 Nov 2016 20:55:03 +0000 (21:55 +0100)]
snapshot: Convert GtkButton and subclasses
Benjamin Otte [Mon, 14 Nov 2016 20:43:24 +0000 (21:43 +0100)]
snapshot: Port GtkActionBar
Benjamin Otte [Mon, 14 Nov 2016 03:31:19 +0000 (04:31 +0100)]
snapshot: Convert GtkButtonBox
Benjamin Otte [Mon, 14 Nov 2016 02:47:22 +0000 (03:47 +0100)]
snapshot: Convert GtkGrid
Benjamin Otte [Mon, 14 Nov 2016 00:52:22 +0000 (01:52 +0100)]
snapshot: Convert entry and spinbutton
Benjamin Otte [Sun, 13 Nov 2016 23:52:40 +0000 (00:52 +0100)]
snapshot: convert GtkBox
Benjamin Otte [Sun, 13 Nov 2016 22:54:30 +0000 (23:54 +0100)]
snapshot: Port to GtkSwitch
Included is the addition of gtk_snapshot_render_layout(), which is meant
to replace gtk_render_layout().
Benjamin Otte [Sun, 13 Nov 2016 20:08:34 +0000 (21:08 +0100)]
snapshot: Add a snapshot function to GtkCssCustomGadget
Benjamin Otte [Sun, 13 Nov 2016 19:47:34 +0000 (20:47 +0100)]
snapshot: Add gtk_css_gadget_snapshot()
Including a snpahsot() vfunc, wee!
Benjamin Otte [Sun, 13 Nov 2016 15:50:24 +0000 (16:50 +0100)]
container: Add snapshot() implementation
Note that this implementation does not respect GDK windows at all. If
your widget requires respecting them, you should write your own
snapshot implementation and not chain up.
Benjamin Otte [Sun, 13 Nov 2016 15:37:35 +0000 (16:37 +0100)]
widget: Add more sophisticated detection of rendering method
We now look at which of get_render_mode, draw or snapshot vfuncs is the
latest to have been overwritten in the class tree and then use that one.
This allows GtkContainerClass and GtkBinClass to override all of them
for without screwing things up.
Benjamin Otte [Sun, 13 Nov 2016 15:16:39 +0000 (16:16 +0100)]
snapshot: Add gtk_snapshot_render_background()
and gtk_snapshot_render_frame() to be direct replacements for the
old gtk_render_*() functions.
Use them to replace Cairo usage completely in gtk_window_snapshot().
Benjamin Otte [Sat, 12 Nov 2016 21:57:31 +0000 (22:57 +0100)]
flowbox: children per line may not be 0
Benjamin Otte [Fri, 11 Nov 2016 23:37:54 +0000 (00:37 +0100)]
snapshot: Completely reengineer API
We now try to emulate cairo_t:
We keep a stack of nodes via push/pop and a transform matrix.
So whenever a new node is added to the snapshot, we transform it
by the current transform matrix and append it to the current node.
Benjamin Otte [Fri, 11 Nov 2016 23:37:38 +0000 (00:37 +0100)]
gsk: Add implementation for gsk_render_node_get_transform()
Benjamin Otte [Tue, 8 Nov 2016 00:42:06 +0000 (01:42 +0100)]
window: Implement snapshot()
Benjamin Otte [Mon, 7 Nov 2016 18:28:42 +0000 (19:28 +0100)]
widget: Add GtkWidgetClass.snapshot() vfunc
Does the same thing as the render vfunc, only that it uses a different
prototype.
Benjamin Otte [Mon, 7 Nov 2016 18:10:49 +0000 (19:10 +0100)]
gtk: Add gtk_widget_snapshot()
It's functionally equivalent to gtk_widget_get_render_node() but uses a
GtkSnapshot argument to carry the state.
Carlos Garnacho [Tue, 15 Nov 2016 16:06:59 +0000 (17:06 +0100)]
gdk: Fix win32 build typo
We've left libgdk-3 behind. Noticed by Andrew Chadwick, spotted
by Emmanuele Bassi.
Marek Cernocky [Tue, 15 Nov 2016 13:39:46 +0000 (14:39 +0100)]
Updated Czech translation
Matthias Clasen [Mon, 14 Nov 2016 20:17:41 +0000 (15:17 -0500)]
entry: Avoid recursion in gtk_entry_ensure_layout
This was unintentional, and lead to a memory leak.
Lauri Kasanen [Fri, 11 Nov 2016 09:36:20 +0000 (11:36 +0200)]
recent-manager: Fix a memory leak caused by "recent-manager: Add a limit to the list's size"
Signed-off-by: Lauri Kasanen <curaga@operamail.com>
https://bugzilla.gnome.org/show_bug.cgi?id=773587
Matthias Clasen [Mon, 14 Nov 2016 19:19:58 +0000 (14:19 -0500)]
appchooser: Plug a memory leak
We were not dropping the reference that the model gives us.
https://bugzilla.gnome.org/show_bug.cgi?id=774352
Andrew Chadwick [Sun, 13 Nov 2016 06:23:17 +0000 (06:23 +0000)]
win32: remove an unused func operating on GdkColor
https://bugzilla.gnome.org/show_bug.cgi?id=774347
Matthias Clasen [Mon, 14 Nov 2016 13:20:32 +0000 (08:20 -0500)]
widget-factory: Better progressbar testing
Hook the two top progressbars up to the scale with marks.
Your turn, Lapo.